package com.yisu.expressway.manager.core.service;

import com.yisu.expressway.ewf.common.web.EasyUIGrid;
import com.yisu.expressway.ewf.entity.GoodsArchives;
import com.yisu.expressway.manager.domain.request.GoodsArchivesRequest;
import com.yisu.expressway.manager.domain.request.SalesGoodsRequest;
import com.yisu.expressway.manager.domain.vo.RecommendGoodsForSelVo;
import com.yisu.expressway.manager.domain.vo.SalesGoodsVo;

import java.util.List;

/**
 * 商品档案接口
 * Created by zj on 2017/4/24.
 */
public interface IGoodsArchivesService {
    /**
     * 通过商品编号获取商品信息
     * @param goodsNo 商品编号
     * @return
     */
    GoodsArchives getGoodsArchivesByGoodsNo(Long goodsNo);

    /**
     * 获取所有商品档案信息
     * @return
     */
    List<GoodsArchives> getAllGoodsData();

    /**
     * 更新商品档案图片信息
     * @param goodsArchives
     * @return
     */
    boolean updateImageInfo(GoodsArchives goodsArchives);

    /**
     * 编辑商品档案信息
     * @param goodsArchives 商品档案
     * @return 成功，失败
     */
    boolean modifyGoodsArchives(GoodsArchives goodsArchives);

    /**
     * 通过类目编号分页获取商品档案
     * @param goodsArchivesRequest 分页请求信息
     * @return 商品档案分页列表
     */
    EasyUIGrid<GoodsArchives> getGoodsArchivesByCategoryCodeByPage(GoodsArchivesRequest goodsArchivesRequest);

    /**
     * 编辑商品排序
     * @param goodsArchivesRequest 需要排序的商品信息
     * @return 成功失败
     */
    boolean updateCategoryGoodsSort(GoodsArchivesRequest goodsArchivesRequest);

    /**
     * 获取当前类目下所有类目商品，包含子分类
     * @param goodsArchivesRequest 请求信息
     * @return 类目商品列表
     */
    EasyUIGrid<RecommendGoodsForSelVo> getGoodsArchivesByParentCategoryCodeForAllByPage(GoodsArchivesRequest goodsArchivesRequest);

    /**
     * 获取售卖商品列表
     * @param salesGoodsRequest 请求信息
     * @return 商品列表
     */
    EasyUIGrid<SalesGoodsVo> getSalesGoodsListByPage(SalesGoodsRequest salesGoodsRequest);

    /**
     * 编辑商品状态
     * @param goodsArchivesRequest  参数信息
     * @return 成功失败
     */
    boolean updateStatus(GoodsArchivesRequest goodsArchivesRequest);

}
